#include <linux/init.h>
#include <linux/module.h>
#include <linux/gpio/consumer.h>
#include <linux/gpio.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/fb.h>
#include <linux/backlight.h>
#include <linux/err.h>
#include <linux/pwm.h>
#include <linux/pwm_backlight.h>
#include <linux/regulator/consumer.h>
#include <linux/slab.h>

#include <linux/async.h>
MODULE_LICENSE("Dual BSD/GPL");

#define EN_OPEN 0x60
#define EN_CLOSE 0x20
#define GPIO_VDIFM_CFG_GNSS_1 0x13300004

char *en_remap = NULL;
u32 en_value;

static int hello_init(void)
{
	en_remap = ioremap(GPIO_VDIFM_CFG_GNSS_1,4);
	en_value = readl(en_remap);
	printk(KERN_ALERT "en_value is %x\n",en_value);

	writel(EN_CLOSE,en_remap);
	en_value = readl(en_remap);
	printk(KERN_ALERT "en_value is %x\n",en_value);
        printk(KERN_ALERT "Hello, world\n");
        return 0;
}
static void hello_exit(void)
{
	en_remap = ioremap(GPIO_VDIFM_CFG_GNSS_1,4);
	writel(EN_OPEN,en_remap);
	en_value = readl(en_remap);
	printk(KERN_ALERT "en_value is %x\n",en_value);
        printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
